2023最新版

您所在的位置:网站首页 mybatis 生成mapper 2023最新版

2023最新版

#2023最新版| 来源: 网络整理| 查看: 265

最新版——新手使用mybatis-plus 3.5.2并使用器代码生成器 第一步,pom文件引入依赖

主要引入mybatis-plus和代码生成器需要使用的freemaker依赖

com.baomidou mybatis-plus-boot-starter 3.5.2 com.baomidou mybatis-plus-generator 3.5.2 com.baomidou mybatis-plus-boot-starter-test 3.5.3.1 org.freemarker freemarker org.freemarker freemarker 2.3.32 io.swagger swagger-annotations 1.5.13

注意:

springboot和mybatis-plus需要对应版本,建议去mybatis-plus官网查看。

本文使用的springboot和mybatis-plus都是最新版本:springboot 2.7.8,mybatis-plus3.5.2

如果不知道该使用啥版本,建议都选最新版本

mybatis-plus官网有详细指南,建议观看

第二步,配置

在application.properties或yml文件中配置:

# DataSourceProperties spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #这里把qa换成自己数据库名字 spring.datasource.url=jdbc:mysql://localhost:3306/qa?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false #数据源配置 #username和password写自己数据库的 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.hikari.maximum-pool-size=15 spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.idle-timeout=30000 #mybatis-plus配置 #放mapper文件的具体位置 mybatis-plus.mapper-locations= classpath*:com/luo/forum/mapper/xml/*Mapper.xml #给entity包取别名,这样在使用com.luo.forum.User等实体时可以直接写User mybatis-plus.type-aliases-package=com.luo.forum.entity #日志:开启这个日志后,回台控制台输出sql语句及查询结果 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 第三步,代码生成器

创建一个类:mygenerator

package com.luo.forum; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import com.baomidou.mybatisplus.generator.fill.Column; import java.util.Collections; public class MyGenerator { private static final String projectPath = System.getProperty("user.dir"); private static final String url = "jdbc:mysql://127.0.0.1:3306/qa";//这里改为自己数据库名字 private static final String username = "root";//数据库用户名和密码 private static final String password = "123456"; private static final String parentPackageName = "com.luo.forum";//生成的mapper等文件夹放在哪个包下 private static final String writer = "lyy";//自己的名字 private static final String outPath = projectPath + "\\src\\main\\java\\"; private static final String mapperPath = projectPath + "\\src\\main\\java\\com\\luo\\forum\\mapper\\xml\\";//mapper.xml文件放的位置 public static void main(String[] args) { String[] tableNames = {"user"};//数据库表名 MyGenerator.execute(tableNames); } public static void execute(String[] tableNames) { FastAutoGenerator.create(url, username, password) .globalConfig(builder -> { builder.author(writer) .enableSwagger() .outputDir(outPath) .disableOpenDir(); }) .packageConfig(builder -> { builder.parent(parentPackageName) .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath)); }) .strategyConfig(builder -> { builder.addInclude(tableNames) .addTablePrefix("t_") //Service 层生成设置 .serviceBuilder() .formatServiceFileName("%sService") .formatServiceImplFileName("%sServiceImpl") //Entity .entityBuilder() .entityBuilder().fileOverride()//表示再次生成会覆盖,建议entity和mapper层覆盖 .enableChainModel() .enableLombok() .enableTableFieldAnnotation() .logicDeleteColumnName("deleted") .logicDeletePropertyName("deleted") .versionColumnName("version") .versionPropertyName("version") .addTableFills(new Column("create_Time", FieldFill.INSERT)) .addTableFills(new Column("update_Time", FieldFill.INSERT_UPDATE)) //controller .controllerBuilder() .enableRestStyle()//生成的controller自带@RestController注解 //mapper .mapperBuilder() .mapperBuilder().fileOverride(); }) .templateEngine(new FreemarkerTemplateEngine()) //使用freemaker模板引擎 .execute(); } }

注意:

每次运行会为表生成mapper、service、entity和controller层代码,其中mapper层和entity层会覆盖之前生成的,改了表结构重新运行即可 如果需要自己写sql语句,在mapper和mapper.xml中编写,mapper层上要自己加上@Mapper注解,可能会扫描不到 自己的业务方法写在serviceImpl中


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3